class features
{
public:  
  inline features(const std::string  in_Spath, 
		  const std::string  in_Mpath,
		  const std::string  in_Spath_mask, 
		  const std::string  in_Mpath_mask,
		  field<std::string> in_actions,
		  const uword in_col, 
		  const uword in_row,
		  const int in_n_regions
  );
  
  inline void features_per_action_training(const  field<string>  peo_train, int run);
  inline void feature_multi_action( field<string> peo_test, int run );
  inline void feature_video(std::string one_video, std::string one_video_mask);
  
  
private:
  inline void features_per_action();
  inline int  which_region(int x, int y, cv::Rect bb);
  
  
  
  
  double THRESH_2;
  
  const std::string single_path;
  const std::string multi_path;
  const std::string single_path_mask;
  const std::string multi_path_mask;
  const field<std::string> actions;
  const uword col;
  const uword row;
  
  const int n_regions;
  
  
  bool ismultiAction;
  rowvec  arma_multi_labels;
  //field <mat> featuresframe_video_i; // Each mat has all the vector features of that frame
  field <mat> featuresframe_video_region_i; // Each mat has all the vector features of that frame

  
  
  //std::vector < vec > feat_video_i; not used
  //std::vector < vec > feat_all_videos_action_i;///comentar
  
  std::vector < std::vector <vec> > feat_all_videos_action_regions;//(n_regions);
  
  std::vector < uword > lab_feature_vectors;
  //std::vector < mat > diag_covs_all_videos;
  
  
  
  
};